#ifndef AVALON_IO_HPP
#define AVALON_IO_HPP
#include "Avalon/Base/Base.hpp"

namespace Avalon {
namespace IO {
  template<typename _Elem, typename _Traits> class BasicIStreamReader;
  typedef BasicIStreamReader<char, std::char_traits<char> > IStreamReader;
  typedef BasicIStreamReader<char, std::char_traits<char> > WIStreamReader;
  template<typename _Elem, typename _Traits> class BasicOStreamWriter;
  typedef BasicOStreamWriter<char, std::char_traits<char> > OStreamWriter;
  typedef BasicOStreamWriter<char, std::char_traits<char> > WOStreamWriter;
  class BasicChannel;
  class Buffer;
  class BufferReader;
  class BufferedReader;
  class Channel;
  class ChannelAdapterServerConnection;
  class ChannelFactory;
  class ClientConnection;
  class ConnectException;
  class Connection;
  class ConnectionState;
  class DelimitedReader;
  class DelimitedWriter;
  class IOException;
  class NotConnectedException;
  class PipedMessageReader;
  class PipedMessageWriter;
  class PipedReader;
  class PipedWriter;
  class Reader;
  class ServerConnection;
  class SizeDeclarativeReader;
  class SizeDeclarativeWriter;
  class TaskWriter;
  class WrapperChannelFactory;
  class Writer;
}
}

#endif // AVALON_IO_HPP
